

package com.hazelcast.config;

/**
 * Type of the index.
 */
public enum IndexType {
    /**
     * Sorted index. Can be used with equality and range predicates.
     */
    SORTED(0),

    /**
     * Hash index. Can be used with equality predicates.
     */
    HASH(1),

    /**
     * Bitmap index. Can be used with equality predicates.
     */
    BITMAP(2);

    private final int id;

    IndexType(int id) {
        this.id = id;
    }

    /**
     * Returns the IndexType as an enum.
     *
     * @return the IndexType as an enum
     */
    public static IndexType getById(final int id) {
        for (IndexType type : values()) {
            if (type.id == id) {
                return type;
            }
        }
        return null;
    }

    /**
     * Gets the ID for the given {@link IndexType}.
     *
     * @return the ID
     */
    public int getId() {
        return id;
    }
}
